package Core;

import java.util.List;
import java.util.Map;

public interface CharacterClass
{
	String getName();
	void setName(String name);
	
	Map<Integer, List<ClassRequirement>> getAllRequirements();
	List<ClassRequirement> getRequirementsForLevel(int level);
	void addRequirement(int level, ClassRequirement newRequirement);
	void addEmptyRequirements(int level);
	
	boolean canLevel(Character character, int level);

	boolean equivalentTo(CharacterClass otherClass);
	
	void addLevelSnapshot(int level, LevelSnapshot snapshot);
	LevelSnapshot findSnapshotByLevel(int level);
}
